#ifndef FLOW_SEQ_MANAGER_H
#define FLOW_SEQ_MANAGER_H

#define MODE_STR    0
#define MODE_BIN    1

typedef struct flow_seq_manager_s flow_seq_manager_t;

void flow_seq_manager_destroy(flow_seq_manager_t * mgr);
flow_seq_manager_t * flow_seq_manager_create(void);

int flow_seq_manager_add_with_mode(flow_seq_manager_t * mgr, int flow_type, const char * path, int mode); 
int flow_seq_manager_add(flow_seq_manager_t * mgr, int flow_type, const char * path); 
int flow_seq_manager_del(flow_seq_manager_t * mgr, int flow_type); 

int flow_seq_manager_set_seq_no(flow_seq_manager_t * mgr, int flow_type, unsigned long long seq_no); 
unsigned long long flow_seq_manager_get_seq_no(flow_seq_manager_t * mgr, int flow_type); 

int flow_seq_manager_save(flow_seq_manager_t * mgr, int flow_type); 
int flow_seq_manager_load(flow_seq_manager_t * mgr, int flow_type, unsigned long long * seq); 

#endif /* FLOW_SEQ_MANAGER_H */
